package com.grantheath.erebus.model.interfaces 
{
	import flash.display.DisplayObjectContainer;

	import com.grantheath.erebus.view.interfaces.IErebusPagePreloader;
	import com.grantheath.erebus.view.interfaces.IErebusPage;
	import com.grantheath.erebus.model.interfaces.IErebusPageNode;

	/**
	 * @author grantheath
	 */
	public interface IErebusPageNode 
	{
		function addChildPageNode(newChild : IErebusPageNode) : void
		function get isLoaded() : Boolean;
		function get pageId() : String
		function set pageId(pageId : String) : void
		function get pageSrc() : String
		function set pageSrc(pageSrc : String) : void
		function get pageAssets() : Array
		function set pageAssets(pageAssets : Array) : void
		function get parent() : IErebusPageNode		
		function set parent(parent : IErebusPageNode) : void
		function get children() : Array
		function set children(children : Array) : void
		function get pageTitle() : String
		function set pageTitle(pageTitle : String) : void
		function get page() : IErebusPage
		function set page(page : IErebusPage) : void
		function get defaultChild() : IErebusPageNode
		function set defaultChild(defaultChild : IErebusPageNode) : void
		function get treePath() : String
		function set treePath(treePath : String) : void
		function get pagePreloaderClass() : Class
		function set pagePreloaderClass(pagePreloaderClass : Class) : void
		function get pageLoaderClass() : Class
		function set pageLoaderClass(pageLoaderClass : Class) : void
		function get pageLoader() : IErebusPageLoader
		function set pageLoader(pageLoader : IErebusPageLoader) : void
		function get pagePreloader() : IErebusPagePreloader
		function set pagePreloader(pagePreloader : IErebusPagePreloader) : void
		function get pageLayer() : DisplayObjectContainer;
		function set pageLayer(layer : DisplayObjectContainer) : void;
		function get preloaderLayer() : DisplayObjectContainer
		function set preloaderLayer(preloaderLayer : DisplayObjectContainer) : void
		function get preloaderTransitionHandelerClass() : Class
		function set preloaderTransitionHandelerClass(preloaderTransitionHandelerClass : Class) : void
		function get transitionHandelerClass() : Class
		function set transitionHandelerClass(transitionHandelerClass : Class) : void
	}
}
